/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package poproject.PlanningTask;

/**
 * Zespół piłkarski.
 * Klasa reprezentuje zespół piłkarski biorący udział w rozgrywkach.
 * @author Jan Karaś
 */
public class FootballTeam{
    
    private String mTeamName;           //< Nazwa drużyny piłkarskiej  
    private String mFieldName;          //< Nazwa boiska przyporządkowanego danej drużynie
    private Integer mMaxMatchesPerDay;  //< Maksymalna ilość meczy na dzień
      
    /**
     * Konstruktor zespołu.
     * Konstrukotr ten pozwala na domyśle ustawienie danego zespołu porzez
     * nadanie mu nazwy. Maksymalna ilość meczy na dzień ustawiona jest tu 
     * na wartość jednego meczu.
     * @param nTeamName Nazwa drużyny
     */
    public FootballTeam(String nTeamName)
    {
        mTeamName = nTeamName;
        mFieldName = "Boisko";
        mMaxMatchesPerDay = 1;
    }
    
    /**
     * Konstruktor zespołu.
     * Konstrukotr ten pozwala na ustawienie danego zespołu porzez
     * nadanie mu nazwy oraz maksymalnej ilości meczy jeki może rozegrać drużyna
     * w ciągu jednego dnia.
     * @param nTeamName Nazwa drużyny
     * @param nNoMatches Maksymalna ilość meczy danej drużyny w ciągu dnia
     */
    public FootballTeam(String nTeamName, Integer nNoMatches)
    {
        mTeamName = nTeamName;
        mMaxMatchesPerDay = nNoMatches;
    }
    
    /**
     * Konstruktor zespołu.
     * Konstruktor ten pozwala na ustawienie nazwy zespołu, boiska oraz
     * maksymalnej ilości meczy jakei może rozegrać drużyna w ciągu dnia
     * @param nTeamName Nazwa drużyny
     * @param nNoMatches Maksymalna ilość meczy danej drużyny w ciągu dnia
     * @param nFieldName Nazwa boiska
     */
    public FootballTeam(String nTeamName, Integer nNoMatches, String nFieldName)
    {
        mTeamName = nTeamName;
        mMaxMatchesPerDay = nNoMatches;
        mFieldName = nFieldName;
    }
    
    /**
     * Ustawienie nazwy drużyny.
     * @param nTeamName Nazwa drużyny
     */
    public void setName(String nTeamName)
    {
        mTeamName = nTeamName;
    }
    
    /**
     * Pobranie nazwy drużyny.
     * @return Nazwa drużyny
     */
    public String getName()
    {
        return mTeamName;
    }
    
    /**
     * Ustalenie nazwy boiska.
     * Metoda pozwalajaca na ustawienie nazwy boiska.
     * @param nFieldName Nazwa boiska
     */
    public void setFieldName(String nFieldName)
    {
        mFieldName = nFieldName;
    }
    
    /**
     * Pobranie nazwy boiska.
     * Metoda umożliwiające pobranie nazwy boiska.
     * @return Nazwa boiska
     */
    public String getFieldName()
    {
        return mFieldName;
    }
    
    /**
     * Ustawienie ilości meczy.
     * Metoda pozwalająca na ustawienie maksymalnej ilości meczy jakie może 
     * rozegrać drużyna w ciągu dnia.
     * @param nNoMatches Ilość meczy na dzień
     */
    public void setMaxMatchesPerDay(Integer nNoMatches)
    {
        mMaxMatchesPerDay = nNoMatches;
    }
    
    /**
     * Pobranie ilości meczy.
     * Metoda pozwalająca na pobranie maksymalnej ilości meczy jakie może 
     * rozegrać drużyna w ciągu dnia.
     * @return Ilość meczy na dzień
     */
    public Integer getMaxMatchesPerDay()
    {
        return mMaxMatchesPerDay;
    }
    
    /**
     * Podstawowe informacje o klasie.
     * Metoda bardzo użyteczna podczas Debugowania programu.
     * @return Łańcuch tekstowy z informacjami o klasie
     */
    @Override
    public String toString()
    {
        return "Drużyna: "+mTeamName + " Boisko: "+mFieldName+" Max. meczy/dzień: "+mMaxMatchesPerDay;
    }
}
